The present invention relates in general to computer-generated animation and in particular to generating images of three-dimensional objects using multiple surfaces to represent different attributes of the object.
Three-dimensional (3-D) animation generally begins with a geometric model of the objects that will appear in the animated scene. Each object is modeled, e.g., as a mesh of polygons in 3-D space, and various attributes of the object's surface are associated with points in the mesh, such as the vertices of the polygons. For example, attributes associated with a point often include a color, a surface normal, a transparency parameter, reflectivity parameters, and one or more sets of texture coordinates, allowing one or more textures to be applied to the surface.
To generate (render) the images, the positions of various objects in the scene are established; for animated images, each image is generated to correspond to a particular time, and positions of at least some objects may vary with time. A viewpoint, or virtual camera position, is established, and a screen area (generally normal to the camera) is defined. The screen area is divided into small sub-areas, referred to herein as pixels, and a color for each pixel is determined based on the attributes of the object (or objects) that project onto that pixel. Which object(s) project onto a pixel can be determined using a variety of techniques, including ray-tracing. In ray tracing, rays are drawn from the pixel to the object (or from the object to the pixel), and the intersection of the ray with the object's surface determines which portion of the object's surface (e.g., which polygon or which vertices) should be used to compute the pixel's color. Computers are used extensively in both the modeling and rendering phases.
Computer-generated 3-D animation (referred to herein as “CGA”) usually approximates a photorealistic look. Objects have crisp, smooth edges and surfaces that do not bleed or smear into each other. In fact, one of the problems CGA faces is that surfaces and edges often look too smooth, lacking the roughness and imperfections of real-life objects.
Further, the photorealistic look of CGA is esthetically limiting. Traditional hand-drawn animation allows the animator to depart from a photorealistic look and adopt a more “painterly” style, with uneven brush strokes, “loose” paint at edges of objects and so on. The traditional animator can adapt the look of the animated world to fit the story being told, and this stylization is generally regarded as one of the advantages of animation over live action.
Efforts to duplicate this painterly look in CGA have not been satisfying. For instance, paintbrush textures have been applied to rendered scenes, but the result is usually a displeasing “screen door” effect as the characters and other objects move under a fixed texture. Other attempts to apply paintbrush-like textures to objects have led to distracting “popping” as loose fragments of virtual “paint” appear and disappear from one frame to the next. Some techniques for incorporating painterly elements, e.g., into backgrounds, have been developed, but these techniques generally have not scaled well or been easy to integrate into CGA processes.
It would therefore be desirable to provide improved computer-based techniques for rendering images with a painterly look.